package cn.demoncat.util.lang.entity;

import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;

/**
 * Object类型的Set
 * 
 * @author 延晓磊
 *
 * @since 2019年5月17日
 */
public class SetObj extends HashSet<Object>{
 
	private static final long serialVersionUID = 1L;

	/**
	 * 实例化
	 * 
	 * @return
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年11月21日
	 */
	public static SetObj getInstance() {
		return new SetObj();
	}
	
	/**
	 * 实例化
	 * 
	 * @return
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年11月21日
	 */
	public static SetObj getInstance(Object... value) {
		SetObj list = new SetObj();
		Collections.addAll(list, value);
		return list;
	}

	/**
	 * 添加
	 *
	 * @param list
	 * @return
	 *
	 * @author 延晓磊
	 * @since 2021年03月03日
	 */
	public SetObj push(Collection<Object> list){
		this.addAll(list);
		return this;
	}

	/**
	 * 添加
	 *
	 * @param value
	 * @return
	 *
	 * @author 延晓磊
	 * @since 2021年03月03日
	 */
	public SetObj push(Object ... value){
		if (value != null && value.length > 0) {
			Collections.addAll(this, value);
		}
		return this;
	}
}
